using System;
using System.Configuration;
using System.Data;
using System.Web.Services.Protocols;
using System.Web.UI;
using Anthem;
using Common;
using MinCultura.Sinic.Basicas;

using UsrControls;
using MinCultura.Sipa.AgentesArtes;
using MinCultura.Sipa.DataAccess.AgentesArtes;
using web.AgentesWS;



namespace MinCultura.Sinic.WebUserControls.Artes
{
	/// <summary>
	/// Control de Comprobacion de la Existencia de Agentes en SIPA
	/// </summary>
	public class AgenteExiste : UserControl
	{
		#region - Definicion de Objetos
        public event Common.Delegados.Delegado Evento;
        public Common.Delegados.Delegado ProcesaConsulta;

		protected DropDownList ddlTipoDocumento;
		protected TextBoxBase txtNumeroDoc;
		protected Button btnBuscar;
	    protected Anthem.Label lblMensaje;
		
		#endregion

		#region - Codigo Base del WebForm

		private void InitializeComponent()
		{
			this.ddlTipoDocumento.SelectedIndexChanged += new System.EventHandler(this.ddlTipoDocumento_SelectedIndexChanged);
			this.btnBuscar.Click += new System.EventHandler(this.btnBuscar_Click);
			this.Load += new System.EventHandler(this.Page_Load);

		}

		protected override void OnInit(EventArgs e)
		{
			InitializeComponent();
			base.OnInit(e);
		}

		#endregion

		#region - Eventos

		private void Page_Load(object sender, EventArgs e)
		{
			
			if (!IsPostBack)
			{
				Manager.Register(this);
				CargaDatos();
			}
		}

		private void btnBuscar_Click(object sender, EventArgs e)
		{
			if (txtNumeroDoc.Text != "")
			{
				bool blnEncriptado = false;		

				TipoDocumento = Convert.ToInt32(ddlTipoDocumento.SelectedValue);
				Agente_TipoDocumentoDescripcion = ddlTipoDocumento.SelectedItem.Text;
                if (Agente_TipoDocumentoDescripcion == "Pasaporte")
                {
                    txtNumeroDoc.IsChar = true;
                }
                else
                {
                    txtNumeroDoc.IsDecimal = true;
                    Documento = Convert.ToDecimal(txtNumeroDoc.Text);
                }
				IdAgente =0;

                MinCultura.Sipa.AgentesArtes.Agentes  objAgente =new MinCultura.Sipa.AgentesArtes.Agentes(ConfigurationManager.AppSettings["conn"].ToString());
				//AgentesWS agentesWS = new AgentesWS(); 				
				try
				{					
					// Invoca el WebService para verificar si el agente existe previamente o no
                    if (txtNumeroDoc.IsDecimal == true)
                    {
                        
						//this.IdAgente = agentesWS.ExisteAgente(TipoDocumento, Documento.ToString(), ref blnEncriptado);
                        this.IdAgente = objAgente.BuscarAgentesTipoDocumento(TipoDocumento, Documento.ToString());
						//this.Encriptado = blnEncriptado;

                    }
                    //else
                    //{
                    //    Document= Convert.ToString(txtNumeroDoc.Text);
                    //    this.IdAgente = agentesWS.ExisteAgente(TipoDocumento, Document, ref blnEncriptado);	
                    //    this.Encriptado = blnEncriptado;
                    //}
				
				}
				catch (SoapException objEx)
				{
					throw new ApplicationException(objEx.Message, objEx);
				}
				catch (Exception objEx)
				{
					throw new ApplicationException(objEx.Message, objEx);
				}

				if (this.IdAgente!=0)
				{					
					DataTable dtAgente = new DataTable();
                    Agentes objAgentes = new Agentes(ConfigurationManager.AppSettings["Conn"]);
					dtAgente = objAgentes.ConsultarAgentesBasicos(IdAgente);

					if (dtAgente.Rows[0][AgentesData.AGE_USU_ID_FIELD]!=DBNull.Value)
						Agente_IdUsuPropietario = Convert.ToDecimal(dtAgente.Rows[0][AgentesData.AGE_USU_ID_FIELD]);

					if (dtAgente.Rows[0][AgentesData.AGE_NOMBRES_APELLIDOS_FIELD]!=DBNull.Value)
						Agente_Nombre = dtAgente.Rows[0][AgentesData.AGE_NOMBRES_APELLIDOS_FIELD].ToString();

					if (dtAgente.Rows[0][AgentesUbicacionData.AGE_TELEFONO_FIELD]!=DBNull.Value)
						Agente_Telefono = dtAgente.Rows[0][AgentesUbicacionData.AGE_TELEFONO_FIELD].ToString();

					if (dtAgente.Rows[0][AgentesUbicacionData.AGE_CORREO_ELECTRONICO_FIELD]!=DBNull.Value)
						Agente_Mail = dtAgente.Rows[0][AgentesUbicacionData.AGE_CORREO_ELECTRONICO_FIELD].ToString();

					if (dtAgente.Rows[0][AgentesUbicacionData.AGE_CELULAR_FIELD]!=DBNull.Value)
						Agente_Celular = dtAgente.Rows[0][AgentesUbicacionData.AGE_CELULAR_FIELD].ToString();

					if (dtAgente.Rows[0][AgentesUbicacionData.AGE_DIRECCION_FIELD]!=DBNull.Value)
						Agente_Direccion = dtAgente.Rows[0][AgentesUbicacionData.AGE_DIRECCION_FIELD].ToString();

					if (dtAgente.Rows[0][AgentesData.AGE_GENERO_FIELD]!=DBNull.Value)
						Agente_Genero = dtAgente.Rows[0][AgentesData.AGE_GENERO_FIELD].ToString();
					
					if (dtAgente.Rows[0][AgentesUbicacionData.AGE_PAGINA_WEB_FIELD]!=DBNull.Value)
						Agente_PaginaWeb = dtAgente.Rows[0][AgentesUbicacionData.AGE_PAGINA_WEB_FIELD].ToString();

					if (dtAgente.Rows[0][AgentesData.AGE_SEUDONIMO_FIELD]!=DBNull.Value)
						Agente_Seudonimo = dtAgente.Rows[0][AgentesData.AGE_SEUDONIMO_FIELD].ToString();
				}

				Evento();
			}
		}

		#endregion

		#region - Metodos Privados

		private void CargaDatos()
		{
            TipoDocumentoIdentidad objBR = new TipoDocumentoIdentidad(ConfigurationManager.AppSettings["Conn"]);
			TipoDocumentoIdentidadData objData =new TipoDocumentoIdentidadData();
			objData = objBR.Buscar();
			ddlTipoDocumento.DataSource = objData;
            ddlTipoDocumento.DataValueField = TipoDocumentoIdentidadData.DOC_ID_FIELD;
            ddlTipoDocumento.DataTextField = TipoDocumentoIdentidadData.DOC_NOMBRE_FIELD;
			ddlTipoDocumento.DataBind();
		}


		#endregion


        private void ddlTipoDocumento_SelectedIndexChanged(object sender, System.EventArgs e)
        {
            Agente_TipoDocumentoDescripcion = ddlTipoDocumento.SelectedItem.Text;
            if (Agente_TipoDocumentoDescripcion == "Pasaporte")
            {
                txtNumeroDoc.IsChar = true;
                txtNumeroDoc.IsDecimal = false;
            }
            else
            {
                txtNumeroDoc.IsChar = false;
                txtNumeroDoc.IsDecimal = true;
                

            }
        }

		#region - Propiedades

		public decimal IdAgente
		{
			get
			{
				if (ViewState["IdAgente"] != null)
					return ((decimal) ViewState["IdAgente"]);
				else
					return (0);
			}
			set { ViewState["IdAgente"] = decimal.Parse(value.ToString()); }
		}

		public bool Encriptado
		{
			get
			{
				if (ViewState["Encriptado"] != null)
					return ((bool) ViewState["Encriptado"]);
				else
					return false;
			}
			set { ViewState["Encriptado"] = bool.Parse(value.ToString()); }
		}

		public bool DoCallBack
		{			
			set
			{				
				btnBuscar.EnableCallBack = value;
			}
		}

		public int TipoDocumento
		{
			get
			{
				if (ViewState["TipoDocumento"] != null)
					return ((int) ViewState["TipoDocumento"]);
				else
					return (0);
			}
			set { ViewState["TipoDocumento"] = int.Parse(value.ToString()); }
		}

		public string Agente_TipoDocumentoDescripcion
		{
			get
			{
				if (ViewState["TipoDocumentoDescripcion"] != null)
					return ViewState["TipoDocumentoDescripcion"].ToString();
				else
					return string.Empty;}
			set{ViewState["TipoDocumentoDescripcion"] = value.ToString();}			
		}

		public decimal Documento
		{
			get
			{
				if (ViewState["Documento"] != null)
					return ((decimal) ViewState["Documento"]);
				else
					return (0);
			}
			set { ViewState["Documento"] = decimal.Parse(value.ToString()); }
		}

		public decimal Agente_IdUsuPropietario
		{
			get
			{
				if (ViewState["Agente_IdUsuPropietario"] != null)
					return ((decimal) ViewState["Agente_IdUsuPropietario"]);
				else
					return (0);
			}
			set { ViewState["Agente_IdUsuPropietario"] = decimal.Parse(value.ToString()); }
		}

		public string Agente_Nombre
		{
			get
			{
				if (ViewState["Agente_Nombre"] != null)
					return ViewState["Agente_Nombre"].ToString();
				else
					return string.Empty;}
			set{ViewState["Agente_Nombre"] = value.ToString();}			
		}

		public string Agente_Telefono
		{
			get
			{
				if (ViewState["Agente_Telefono"] != null)
					return ViewState["Agente_Telefono"].ToString();
				else
					return string.Empty;}
			set{ViewState["Agente_Telefono"] = value.ToString();}			
		}

		public string Agente_Mail
		{
			get
			{
				if (ViewState["Agente_Mail"] != null)
					return ViewState["Agente_Mail"].ToString();
				else
					return string.Empty;}
			set{ViewState["Agente_Mail"] = value.ToString();}			
		}		

		public string Agente_Genero
		{
			get
			{
				if (ViewState["Agente_Genero"] != null)
					return ViewState["Agente_Genero"].ToString();
				else
					return string.Empty;}
			set{ViewState["Agente_Genero"] = value.ToString();}			
		}
		public string Agente_Seudonimo
		{
			get
			{
				if (ViewState["Agente_Seudonimo"] != null)
					return ViewState["Agente_Seudonimo"].ToString();
				else
					return string.Empty;}
			set{ViewState["Agente_Seudonimo"] = value.ToString();}			
		}
		public string Agente_Direccion
		{
			get
			{
				if (ViewState["Agente_Direccion"] != null)
					return ViewState["Agente_Direccion"].ToString();
				else
					return string.Empty;}
			set{ViewState["Agente_Direccion"] = value.ToString();}			
		}
		public string Agente_PaginaWeb
		{
			get
			{
				if (ViewState["Agente_PaginaWeb"] != null)
					return ViewState["Agente_PaginaWeb"].ToString();
				else
					return string.Empty;}
			set{ViewState["Agente_PaginaWeb"] = value.ToString();}			
		}
		public string Agente_Ocupacion
		{
			get
			{
				if (ViewState["Agente_Ocupacion"] != null)
					return ViewState["Agente_Ocupacion"].ToString();
				else
					return string.Empty;}
			set{ViewState["Agente_Ocupacion"] = value.ToString();}			
		}
		public string Agente_Celular
		{
			get{if (ViewState["Agente_Celular"] != null)
					return ViewState["Agente_Celular"].ToString();
				else
					return string.Empty;}
			set{ViewState["Agente_Celular"] = value.ToString();}			
		}


		public string Document
		{
			get
			{
				if (ViewState["Documento"] != null)
					return ((string) ViewState["Documento"]);
				else
					return ("");
			}
			set { ViewState["Documento"] = value.ToString(); }
		}

		#endregion
	}
}